

public class Test {
    public static void main(String[] args) throws Exception {

        // 1、main抛出throwSomeExeption函数的异常
        throwSomeExeption();
        // 2、在函数内部使用try-catch捕获异常
        catchException();
    }

    // 1、使用trycatch捕获异常
    public static void catchException() {
        try {
            throwSomeExeption();
        } catch (Exception e) {
            // printStackTrace()方法打印异常栈
            e.printStackTrace();
        }
    }

    // 使用throws Xxx表示该方法可能抛出的异常类型。调用方在调用的时候，必须强制捕获这些异常，否则编译器会报错
    public static int throwSomeExeption() throws Exception {
        if (Math.random() > 0.5) {
            throw new Exception("throwSomeExeption出错了");
        } else {
            return 1;
        }
    }
}
